1
残す行を選ぶ
DSAI2202Lab 7: Reasoning Across Relationships

UniLearnの学籍システムとLMSには、同じ学生IDが含まれていません。チームはいくつかのレポートを必要としており、それぞれが次の問いに対して異なる答えを持ちます。 「どのソースの行を含めるべきか?」

Lab 6のデータベースを再利用する

Lab 6で lab6_7_setup.sql をすでに実行している場合は、そのデータをそのまま使用してください。そうでない場合は、チューターから提供された共有セットアップファイルをpgAdminで開き、一度実行してください。新しいQuery Tool接続ごとに次のスキーマを選択してください。 lab6_7 を選択してください。

理解している結合から始める

  1. 確認する: students および lms_roster(学籍システムに22件のID、LMSに6件のID)。
  2. Lab 6の照合ルールで使用したINNER JOINを実行する。
  3. 両方のソースに存在する4つのIDを特定する。
  4. この結果がどちらのソースの完全なリストにもなり得ない理由を説明する。

5つのレポート要求

共有アカウントの一覧、すべての学籍学生の保持、すべてのLMSアカウントの保持、両ソースの突合、学生とコースの組み合わせの生成。これらの要求に対して、INNER、LEFT、RIGHT、FULL、CROSS JOINクエリを作成します。

✍️ 欠落しているコンテキストを予測しよう
S103は学籍に登録されていますが、LMSアカウントを持っていません。S901はLMSにインポートされていますが、学籍に存在しません。完全なレポートでは、それぞれどこに含まれるべきでしょうか?
共有アカウント
SET search_path TO lab6_7;

SELECT s.student_id AS registry_id, s.student_name,
       r.student_id AS lms_id, r.lms_name
FROM students AS s
INNER JOIN lms_roster AS r
  ON s.student_id = r.student_id
ORDER BY s.student_id;
一致したIDを確認する

4行: S101、S102、S105、S121。各IDは両方のテーブルで一意であるため、一致したペアはそれぞれ1回ずつ表示されます。このレポートには共有アカウントのみが含まれます。

Uma(S121)は履修登録がないにもかかわらず、LMSアカウントを持っています。アカウントが一致することは、コースへの参加を証明するものではありません。